package com.bestcem.xm.deliver.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bestcem.xm.common.core.domain.web.ServiceResult;
import com.bestcem.xm.component.mybatis.service.IXmService;
import com.bestcem.xm.deliver.controller.param.SmsRecordsPageParam;
import com.bestcem.xm.deliver.controller.v2.param.SmsDeliversParam;
import com.bestcem.xm.deliver.entity.DeliverDeliver;
import com.bestcem.xm.deliver.entity.DeliverSmsDeliver;
import com.bestcem.xm.deliver.entity.DeliverSmsRecord;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @author been
 * @description 针对表【ds_deliver_smsdeliver】的数据库操作Service
 * @createDate 2022-11-07 13:49:46
 */
public interface DeliverSmsDeliverService extends IXmService<DeliverSmsDeliver> {

    List<DeliverSmsDeliver> originGetSmsDeliverList(String deliverGroupId);

    List<DeliverSmsRecord> getSmsRecordList(String memberId, List<String> smsDeliverList);

    void triggerDeliverStatus(DeliverDeliver deliver, String action);

    ServiceResult<?> smsDeliverUrge(String id, JSONObject param);

    ServiceResult<?> smsDelivers(SmsDeliversParam param);

    String createSmsDeliver(SmsDeliversParam param);

    void smsDeliverExport(JSONObject param, HttpServletResponse response, DeliverSmsDeliver smsDeliver, DeliverDeliver deliver);

    ServiceResult<?> editSmsDelivers(String id, JSONObject param);

    ServiceResult<?> smsDeliverRecord(Page<DeliverSmsRecord> page, SmsRecordsPageParam param);

    ServiceResult<?> updateSmsDelivers(String id, JSONObject param);

    ServiceResult<?> smsDeliverAgain(String id, JSONObject param, DeliverSmsDeliver smsDeliver);
}
